package com.naiterui.ehp.bs.cms.modules.wms.vo;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import lombok.Data;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <pre>
 *     商品详情，编辑和新增都使用此VO
 * </pre>
 *
 * @author 王泽浩
 * @date 2019-06-10 13:55
 * @since 1.0.0
 */
@Data
@ApiModel(description = "药品详情")
public class MedicineVO implements java.io.Serializable {
    private static final long serialVersionUID = -8437605089990840979L;

    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID")
    private Long productId;

    /**
     * 产品编号
     */
    @ApiModelProperty(value = "产品编号")
    private String number;

    /**
     * 商品名
     */
    @NotEmpty(message = "商品名称不能为null")
    @ApiModelProperty(value = "商品名称")
    private String name;

    /**
     * 商品名
     */
    @ApiModelProperty(value = "商品名")
    private String drugName;

    /**
     * 品牌名
     */
    @ApiModelProperty(value = "品牌名")
    private String brandName;

    /**
     * 药品通用名
     */
    @NotEmpty(message = "药品通用名不能为null")
    @ApiModelProperty(value = "药品通用名")
    private String commonName;

    /**
     * 英文名称
     */
    @ApiModelProperty(value = "英文名称")
    private String englishName;

    /**
     * 汉语拼音
     */
    @ApiModelProperty(value = "汉语拼音")
    private String pinyin;

    /**
     * 安全类别，1：处方药；2：otc
     */
    @NotNull(message = "安全类别不能为null")
    @ApiModelProperty(value = "安全类别")
    private Integer nmpaType;

    /**
     * 规格
     */
    @ApiModelProperty(value = "规格")
    private String specification;

    /**
     * 原料分类，1：中药；2：西药；3：血液制品；4：诊断制剂
     */
    @ApiModelProperty(value = "原料分类")
    private Integer materialType;

    /**
     * 药理分类ID
     */
    //@NotNull(message = "药理分类不能为null")
    @ApiModelProperty(value = "药理分类ID")
    private Long pharmacologyClassificationId;

    /**
     * 药品分类id
     */
    //@NotNull(message = "药品分类id不能为null")
    @ApiModelProperty(value = "药品分类id")
    private Long drugClassificationId;

    /**
     * 型剂分类ID
     */
    @NotNull(message = "型剂分类不能为null")
    @ApiModelProperty(value = "型剂分类ID")
    private Long agentClassificationId;

    /**
     * 型剂分类名称
     */
    @ApiModelProperty(value = "型剂分类名称")
    private String agentClassificationName;

    /**
     * 外包装单位（盒、瓶。。。）
     */
    @NotEmpty(message = "外包装单位不能为null")
    @ApiModelProperty(value = "外包装单位")
    private String packingUnit;

    /**
     * 最小包装单位（片、粒。。。）
     */
    @NotEmpty(message = "最小包装单位不能为null")
    @ApiModelProperty(value = "最小包装单位")
    private String packingUnitLimit;

    /**
     * 批准文号
     */
    @NotEmpty(message = "批准文号/注册证号不能为null")
    @ApiModelProperty(value = "批准文号")
    private String approvalNumber;

    /**
     * 药品本位码
     */
    //@NotEmpty(message = "药品本位码不能为null")
    @ApiModelProperty(value = "药品本位码")
    private String standardCode;

    /**
     * 展示分类
     */
    @NotNull(message = "展示分类不能为null")
    @ApiModelProperty(value = "展示分类Id")
    private Long categoryId;

    /**
     * 贮藏
     */
    @NotEmpty(message = "贮藏不能为null")
    @ApiModelProperty(value = "贮藏")
    private String storage;

    /**
     * 化学名称
     */
    @ApiModelProperty(value = "化学名称")
    private String chemicalName;

    /**
     * 成分
     */
    @ApiModelProperty(value = "成分")
    private String ingredients;

    /**
     * 性状
     */
    @ApiModelProperty(value = "性状")
    private String phenotypicTrait;

    /**
     * 适应症
     */
    @NotEmpty(message = "适应症不能为null")
    @ApiModelProperty(value = "适应症")
    private String indications;

    /**
     * 用法用量
     */
    @NotEmpty(message = "用法用量不能为null")
    @ApiModelProperty(value = "用法用量")
    private String usageDosage;
    /**
     * 不良反应
     */
    @ApiModelProperty(value = "不良反应")
    private String adverseEffects;

    /**
     * 禁忌
     */
    @ApiModelProperty(value = "禁忌")
    private String contraindications;

    /**
     * 注意事项
     */
    @ApiModelProperty(value = "注意事项")
    private String mattersNeedingAttention;

    /**
     * 生产企业
     */
    @NotEmpty(message = "生产企业不能为null")
    @ApiModelProperty(value = "生产企业")
    private String productionEnterprise;

    /**
     * 有效期
     */
    @NotEmpty(message = "有效期不能为null")
    @ApiModelProperty(value = "有效期")
    private String periodValidity;

    /**
     * 执行标准
     */
    @NotEmpty(message = "执行标准不能为null")
    @ApiModelProperty(value = "执行标准")
    private String executionStandard;

    @ApiModelProperty(value = "处方流转平台基础信息商品ID")
    private Long thirdId;
}
